package com.ssy.lingxi.transaction.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.transaction.api.dto.request.*;
import com.ssy.lingxi.transaction.api.dto.response.*;
import com.ssy.lingxi.transaction.entity.record.InquiryExternalRecord;
import com.ssy.lingxi.transaction.entity.record.InquiryInteriorRecord;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
* 商品询价单管理
* @author wrc
* @date 2020/8/10
*/
public interface IInquiryService {

    Wrapper<PageData<NotAssignedInquiryResponse>> notAssignedInquiryList(NotAssignedInquiryRequest request, UserLoginCacheDTO sysUser);

    /**
     * 商品询价-询价单列表
     * @author wrc
     * @date 2020/8/10
     */
    Wrapper<PageData<InquiryListResponse>> inquiryAddList(InquiryListRequest request, UserLoginCacheDTO sysUser);

    /**
     * 交易中心-商品询价-待新增询价单列表查询
     * @author wrc
     * @date 2020/8/10
     */
    Wrapper<PageData<InquiryListResponse>> inquiryList(InquiryListRequest request, UserLoginCacheDTO sysUser);

    /**
    *交易能力 询价报价 询价单查询
    * @author wrc
    * @date 2020/8/12
    */
    Wrapper<PageData<QuoteListResponse>> productInquiryList(InquiryListRequest request,UserLoginCacheDTO sysUser);

    /**
    * 交易中心-商品询价-待新增询价单添加
    * @author wrc
    * @date 2020/8/10
    */
    Wrapper<Long> inquiryListAdd(@RequestBody InquiryListAddRequest request,UserLoginCacheDTO sysUser);

    /**
    *交易中心-商品询价-待新增询价单详情
    * @author wrc
    * @date 2020/8/10
    */
    Wrapper<InquiryListDetailsResponse> inquiryListDetails(InquiryListDetailsRequest request, UserLoginCacheDTO sysUser);

    /**
    * 交易中心-商品询价-待新增询价单删除
    * @author wrc
    * @date 2020/8/10
    */
    Wrapper inquiryListDelete(InquiryListDetailsRequest request);

    /**
    * 报价单商品列表查询
    * @author wrc
    * @date 2020/11/9
    */
    Wrapper<PageData<InquiryListProductResponse>> inquiryDetails(InquiryListProductPageRequest request);

    /**
    * 交易中心-商品询价-待新增询价单批量删除
    * @author wrc
    * @date 2020/8/11
    */
    Wrapper inquiryListDeleteAll( InquiryListDeleteAllRequest request);

    /**
    * 交易中心-商品询价-待新增询价单修改
    * @author wrc
    * @date 2020/8/11
    */
    Wrapper inquiryListUpdate(InquiryListUpdateRequest request, UserLoginCacheDTO sysUser );

    /**
    * 交易中心-商品询价-询价商品列表查询
    * @author wrc
    * @date 2020/8/11
    */
    Wrapper<PageData<InquiryListProductResponse>> enquiryProductList(EnquiryProductListRequest request);

    /**
     * 交易中心-商品询价-询价商品列表查询
     * @author wrc
     * @date 2020/8/11
     */
    Wrapper<List<InquiryListProductResponse>> enquiryProductAll(EnquiryProductListRequest request, UserLoginCacheDTO sysUser);

    /**
    *交易中心-商品询价-提交审核
    * @author wrc
    * @date 2020/8/11
    */
    Wrapper inquiryListSubmit(InquiryListSubmitRequest request,UserLoginCacheDTO sysUser);

    /**
    * 交易中心-商品询价-批量提交审核
    * @author wrc
    * @date 2020/8/11
    */
    Wrapper inquiryListSubmitAll(InquiryListSubmitAllRequest request,UserLoginCacheDTO sysUser);

    /**
    * 交易能力 商品询价 待审核询价单一级列表查询
    * @author wrc
    * @date 2020/8/11
    */
    Wrapper<PageData<InquiryListResponse>> inquiryToAuditList(InquiryListRequest request,UserLoginCacheDTO sysUser);

    /**
    *交易能力 商品询价 待审核询价单（一级）单据审核
    * @author wrc
    * @date 2020/8/12
    */
    Wrapper inquiryDocumentsReview(InquiryListSubmitRequest request,UserLoginCacheDTO sysUser);

    /**
     *交易能力 商品询价 待审核询价单（一级）单据审核 批量
     * @author wrc
     * @date 2020/8/12
     */
    Wrapper inquiryDocumentsReviewAll(InquiryListSubmitAllRequest request,UserLoginCacheDTO sysUser);

    /**
     * 交易能力 商品询价 待审核询价单二级列表查询
     * @author wrc
     * @date 2020/8/11
     */
    Wrapper<PageData<InquiryListResponse>> inquiryToAuditListTwo(InquiryListRequest request,UserLoginCacheDTO sysUser);

    /**
     *交易能力 商品询价 待审核询价单（二级）单据审核
     * @author wrc
     * @date 2020/8/12
     */
    Wrapper inquiryDocumentsReviewTwo(InquiryListSubmitRequest request,UserLoginCacheDTO sysUser);

    /**
     *交易能力 商品询价 待审核询价单（二级）单据审核 批量
     * @author wrc
     * @date 2020/8/12
     */
    Wrapper inquiryDocumentsReviewAllTwo(InquiryListSubmitAllRequest request,UserLoginCacheDTO sysUser);

    /**
    *交易能力 商品询价 待提交询价单列表查询
    * @author wrc
    * @date 2020/8/12
    */
    Wrapper<PageData<InquiryListResponse>> submitInquirySheetList(InquiryListRequest request,UserLoginCacheDTO sysUser);

    /**
    * 交易能力 商品询价 提交询价单
    * @author wrc
    * @date 2020/8/12
    */
    Wrapper inquirySubmit(InquiryListSubmitRequest request, UserLoginCacheDTO sysUser);

    /**
    * 交易能力 商品询价 提交询价单 批量
    * @author wrc
    * @date 2020/8/12
    */
    Wrapper inquirySubmitAll(InquiryListSubmitAllRequest request, UserLoginCacheDTO sysUser);

    /**
     * 商品询价-查询上游供应会员和商品
     */
    Wrapper<InquiryUpperMemberCommodityResponse> getUpperMemberCommodity(Long inquiryId);

    /**
     * 内部工作流程枚举
     * @author wrc
     * @date 2020/7/28
     */
     Wrapper<List<QuotationExternalStateEnumResponse>> getProductInquiryInteriorEnum(QuotationExternalStateEnumRequest request);

    /**
    * 外部工作流程枚举
    * @author wrc
    * @date 2020/11/23
    */
    Wrapper<List<QuotationExternalStateEnumResponse>> getProductexternalInteriorEnum();

    /**
    *积分同步
    */
    Wrapper<Integer> memberInquiryIntegralUpdate(MemberInquiryIntegralUpdateRequest request);

    /**
     * 商城能力--企业商城-商品询价动态
     */
    Wrapper<PageData<ShopInquiryListResponse>> getShopInquiryList(PageVO pageVO, Long shopId);

    /**
     * 商城能力--企业商城&渠道商城共用--店铺-询价商品详情-接口
     */
    Wrapper<InquiryListProductResponse> inquiryProductDetails(BaseDetailsRequest request,UserLoginCacheDTO sysUser);

    Page<InquiryInteriorRecord> getInquiryInteriorRecordList(PageVO pageVO, Long inquiryListId, Long startTime, Long endTime);

    Page<InquiryExternalRecord> getInquiryExternalRecordList(PageVO pageVO, Long inquiryListId, Long startTime, Long endTime);

    Boolean assignedInquiry(Long inquiryId, UserLoginCacheDTO sysUser);

    Boolean assignedInquiryBatch(List<Long> idList, UserLoginCacheDTO sysUser);

    /**
     * 小程序-业务员 询价报价 询价单查询
     *
     * @param request
     * @param sysUser
     * @return
     */
    Wrapper<PageData<AppletQuoteListResponse>> appletInquiryList(AppletInquiryListRequest request, UserLoginCacheDTO sysUser);

    /**
     * 小程序业务员询价单详情
     * @param request
     * @param sysUser
     * @return
     */
    Wrapper<AppletInquiryDetailsResponse> appletInquiryDetails(AppletInquiryDetailsRequest request, UserLoginCacheDTO sysUser);

}
